package Work;

import java.util.ArrayList;
import java.util.Scanner;

/*          管理员功能           */
/*       对读者信息的增删改查      */

public class ChangeReader {

	// 增加
	public void insert(ArrayList<Reader> list, Jdbc db) {
		String str1, str2, str3 = null, s = "";
		double d;
		int c;
		Scanner sc = new Scanner(System.in);
		while (true) {
			Reader reader = new Reader();
			System.out.println("请输入您要添加的读者的“姓名”:");
			str1 = sc.next();
			reader.setName(str1);
			System.out.println("请输入您要添加的读者的“电话”:");
			str2 = sc.next();
			reader.setNumber(str2);
			System.out.println("请输入您要添加的读者的“所在学院”:");
			str3 = sc.next();
			reader.setInstitute(str3);
			System.out.println(reader.toString());
			list.add(reader);
			db.sql("insert into reader (r_name, r_number, institute) " + "value ('" + str1 + "', '" + str2 + "', '"
					+ str3 + "')");
			db.record("创建读者信息", str1, "创建成功");// 写入记录表格，可删

			// }
			System.out.println("输入-1退出增加读者(输入其他内容则继续添加):");
			str1 = sc.next();
			if (str1.equals("-1")) {
				return;
			}
		}
	}
	
	//删除
    public void delete(ArrayList<Reader> list, Jdbc db){
        int c;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的读者编号（若取消操作请输入-1）：");
        c = sc.nextInt();
        if(c == -1) {
        	System.out.println("取消删除！");
        }else {
        	db.sql("delete from reader where r_id = " +c);
        	System.out.println("编号为“"+c+"”的读者信息删除成功!");
        }
    }

	// 修改
	public void change(ArrayList<Reader> list, Jdbc db) {
		int c;
		String str;
		String id;// 记录修改信息
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入待修改读者的“编号”：");
		id = sc.next();
		System.out.println("请选择要修改读者的：\n1.姓名\n2.电话\n3.学院\n（取消操作请按-1）");
		c = sc.nextInt();
		if (c == 1) {
			System.out.println("请输入待修改读者新的“姓名”：");
			str = sc.next();
			db.sql("update reader set r_name = '" + str + "' where r_id = '" + Integer.parseInt(id) + "'");
		} else if (c == 2) {
			System.out.println("请输入待修改书籍新的“电话”：");
			str = sc.next();
			db.sql("update reader set r_number = '" + str + "' where r_id = '" + Integer.parseInt(id) + "'");
		} else if (c == 3) {
			System.out.println("请输入待修改书籍新的“学院”：");
			str = sc.next();
			db.sql("update reader set institute = '" + str + "' where r_id = '" + Integer.parseInt(id) + "'");
		} else {
			System.out.println("已经取消修改！");
		}

	}

	// 查询书读者信息
	public void search(ArrayList<Reader> list, Jdbc db) {
		Scanner sc = new Scanner(System.in);
		PrintList printlist = new PrintList();
		// String str;
		// ,demoStr;//demoStr用于记录要操作的读者编号
		int i;
		while (true) {
			System.out.println("\n请输入您想要查询的读者信息表中哪种信息？\n1.读者编号\n2.读者姓名\n3.读者电话\n4.读者所在学院\n(输入“-1”退出查询系统):");
			i = sc.nextInt();
			if (i == -1) {// 用户退出
				return;
			} else {
				ArrayList<Reader> reader = db.findReader(i);
				if (reader == null) {
					System.out.println("您输入的信息不存在,请重新输入。");
				} else {
					// System.out.println(reader.toString());
					printlist.printreaderList(reader);
				}
			}
		}

	}

	/*
	 * //通过id或者姓名或电话或学院查询读者 public void search1(ArrayList<Reader> list, Jdbc db){
	 * Scanner sc = new Scanner(System.in); String str;
	 * //,demoStr;//demoStr用于记录要操作的读者编号
	 * 
	 * while(true){
	 * System.out.println("\n\n请输入您想要查询的读者的“编号”或“姓名”或“电话”或“学院”(输入“-1”退出查询系统):");
	 * str=sc.next(); //boolean flag = false;//未查询到标志 if(str.equals("-1")){//用户退出
	 * return; } else{ Reader reader= db.findReader(str, list); if(reader == null) {
	 * System.out.println("您输入的读者的“编号”或“姓名”或“电话”或“学院” ‘" + str + "’ 不存在,请重新输入。"); }
	 * else{ System.out.println(reader.toString()); //break; } } } }
	 */

	// 读取数据库文件，生成读者信息表
	public ArrayList<Reader> read(Jdbc db) {
		ArrayList<Reader> list = null;
		// 初始化reader类的count和idCount
		// reader.setCount();
		try {
			list = db.searchReader();

			System.out.println("读取数据成功");
			return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	

	// 打印完整读者信息表（管理员查询读者列表的全表）
	public void printList(Jdbc db) {
		ArrayList<Reader> list = db.searchReader();
		System.out.println("\n\n《读者信息列表》\n");
		System.out.println("ID\t\t\tName\t\t\tNumber\t\t\tInstitute");
		// 遍历reader列表，并打印对应属性
		for (Reader reader : list) {
			System.out.println(reader.getID() + "\t" + reader.getName() + "\t\t\t" + reader.getNumber() + "\t\t\t\t"
					+ reader.getInstitute());
		}
	}
}
